Systems for testing logic circuits are known in the field of data processing. For example, it is known to test digital processors with so called ‘self-test software’ for digital processors used for safety relevant applications or other applications which require a high reliability or operational availability, such as chassis control or power train control in vehicles. The self-test software is typically embedded in the application run by the digital processor and consists of a set of test routines, and an interfacing program between the test routines and the user application. Each test routine represents a piece of code which is designed to perform a test on a part of the logic circuit in order to detect physical defects. The test routine reports a result of the test to the interfacing program. The interfacing program determines an overall result from the test results reported by the individual test routines.
Self-test software is often used in safety relevant applications, such as control of cars or airplanes, and it is often required that self-test software meets the safety requirements. The self test software may switch parts of the system to specific modes or change the system to specific states particularly suitable for testing. As the self-test software should test those system parts that are used for the application there is a potential for negative interference of the self test software with the application if the self test software is activated incorrectly, for example outside a specific test window in the application schedule. Systems are known in which a so called ‘watch-dog timer’ is provided. The watch-dog timer is activated by the application at the beginning of running the self-test test software and measures the period of time the self-test is taking. The watch-dog timer compares the measured period with a threshold. When the measured period exceeds the threshold, the watch-dog timer outputs a warning.
However, a disadvantage of the known systems is that there is a risk that (a part of) the self-testing is performed without activating the watch-dog timer. For example, without being noticed as an error, the self-test software may be activated without starting the watchdog timer due to a fault in the application run by the digital processor. Also, the self-test software may not be entered at the correct address, causing the watchdog timer not being activated. Another situation in which the watchdog timer may be unintentionally not activated is when the system enters unintended a specific test mode due to a fault.